home *** CD-ROM | disk | FTP | other *** search
/ MacTech 1 to 12 / MacTech-vol-1-12.toast / Source / MacTech® Magazine / Volume 05 - 1989 / 05.12 Dec 89 / ASM Program / Pascal Source Code < prev    next >
Encoding:
Text File  |  1988-07-01  |  1.2 KB  |  55 lines  |  [TEXT/QED1]

  1. PROGRAM TestSM;
  2. USES
  3.         SANE;
  4.     TYPE
  5.         element = PACKED RECORD
  6.                 empty : integer;
  7.                 n : extended;
  8.             END;
  9.         vector = ARRAY[0..19] OF element;
  10.         matrix = RECORD
  11.                 rows : integer;
  12.                 columns : integer;
  13.                 vecPtr : ^vector
  14.             END;
  15.  
  16.     VAR
  17.         inVect : vector;
  18.         outVect : vector;
  19.         i : integer;
  20.         inMatrix, outMatrix : matrix;
  21.         scalar : extended;
  22.         error : integer;
  23.  
  24.  
  25.     FUNCTION ScaleMult (scalar : extended;     VAR inMat, outMat : matrix) : integer;
  26.     external;
  27.  
  28.  
  29. BEGIN
  30.     ShowText;
  31.     scalar := 35;
  32.     inMatrix.rows := 0;
  33.     inMatrix.columns := 19;
  34.     inMatrix.VecPtr := @inVect;
  35.     outMatrix.rows := 0;
  36.     outMatrix.columns := 19;
  37.     outMatrix.VecPtr := @outVect;
  38.     writeln('scalar = ', scalar);
  39.     writeln('scalar, inMatrix, outMatrix, error, inVect');
  40.     write(longint(@scalar), longint(@inMatrix),             longint(@outMatrix), longint(@error));
  41.     writeln(longint(@inVect));
  42.     FOR i := 0 TO 19 DO
  43.         BEGIN
  44.             inVect[i].empty := 255;
  45.             inVect[i].n := i;
  46.         END;
  47.     error := ScaleMult(scalar, inMatrix, outMatrix);
  48.     writeln('error = ', error);
  49.     writeln('i':5,'inVect':10,'outVect':10);
  50.     FOR i := 0 TO 19 DO
  51.         writeln(i:5, inVect[i].n:10, outVect[i].n:10);
  52.     writeln('scalar = ', scalar);
  53.     writeln('The End...');
  54. END.
  55.